      FXMeshIterator    C:\Users\KatachiHome\AppData\Roaming\MAXON\CINEMA 4D R13_05DFD2A0\plugins\DPIT Plants & Effex 2.0\res\help\EN\Effex\fx_api_classes_fxmeshiterator.html   c        6                                                                                                                                                                                                                           Z   default.tif                  Object Header               [code]vector3d GetVertex(void)    A<b>Returns</b><br>
the current vertex location in physical space                   ,[code]vector3d GetVertexByIndex(long index)    <b>Returns</b><br>
the vertex location in physical space
<br></br>
<b>Parameters</b><BR>
<i>long index</i>: <br>
pass a vertex index here. The internal iterator is automatically adjusted to this vertex index!                   ![code]VecInt3D GetTriangle(void)    i<b>Returns</b><br>
the current triangle the iterator is pointing to containing the three vertex indices.                   .[code]VecInt3D GetTriangleByIndex(long index)    <b>Returns</b><br>
the triangle containing the three vertex indices.
<br></br>
<b>Parameters</b><BR>
<i>long index</i>: <br>
pass a triangle index here. The internal iterator is automatically adjusted to this triangle index!                   U[code]double GetProperty_Scalar(const ParticleProperty type, BaseObject* node) const   	<b>Returns</b><br>
the value of the requested scalar property
<br></br>
<b>Parameters</b><BR>
<i>const ParticleProperty & prop</i>: <br>
the property type to retrieve. See ParticleProperty for a list of properties.
<br></br>
<i>const BaseObject* node_interface</i>: <br>
optionally a property node interface. This is really only necessary if you want to retrieve a custom property
because there can be multiple custom properties of the same type. The node interface is the explicit identifier for such a custom property.                   W[code]vector3d GetProperty_Vector(const ParticleProperty type, BaseObject* node) const   	<b>Returns</b><br>
the value of the requested vector property
<br></br>
<b>Parameters</b><BR>
<i>const ParticleProperty & prop</i>: <br>
the property type to retrieve. See ParticleProperty for a list of properties.
<br></br>
<i>const BaseObject* node_interface</i>: <br>
optionally a property node interface. This is really only necessary if you want to retrieve a custom property
because there can be multiple custom properties of the same type. The node interface is the explicit identifier for such a custom property.                   e[code]void SetProperty_Scalar(const double new_value, const ParticleProperty type, BaseObject* node)   ~Overwrites the requested scalar property. If no such property is available it will be created automatically!
<br></br>
<b>Parameters</b><BR>
<i>const double new_value</i>: <br>
the new scalar property value.
<br></br>
<i>const ParticleProperty & prop</i>: <br>
the property type to set. See ParticleProperty for a list of properties.
<br></br>
<i>const BaseObject* node_interface</i>: <br>
optionally a property node interface. This is really only necessary if you want to change a custom property
because there can be multiple custom properties of the same type. The node interface is the explicit identifier for such a custom property.                   h[code]void SetProperty_Vector(const vector3d& new_value, const ParticleProperty type, BaseObject* node)   Overwrites the requested vector property. If no such property is available it will be created automatically!
<br></br>
<b>Parameters</b><BR>
<i>const vector3d& new_value</i>: <br>
the new vector property value.
<br></br>
<i>const ParticleProperty & prop</i>: <br>
the property type to set. See ParticleProperty for a list of properties.
<br></br>
<i>const BaseObject* node_interface</i>: <br>
optionally a property node interface. This is really only necessary if you want to change a custom property
because there can be multiple custom properties of the same type. The node interface is the explicit identifier for such a custom property.               	    %[code]bool Init (FXVolumeMesh* mesh)    Initialise the iterator for a mesh volume.
<br></br>
<b>Returns</b><br>
true if the iterator was successfully initialised.
<br></br>
<b>Parameters</b><BR>
<i>FXVolumeMesh* mesh</i>: <br>
the mesh volume to initialise the iterator for.               
    ![code]bool Init (FXMesher* mesh)    Initialise the iterator for a mesher.
<br></br>
<b>Returns</b><br>
true if the iterator was successfully initialised.
<br></br>
<b>Parameters</b><BR>
<i>FXMesher* mesh</i>: <br>
the mesher to initialise the iterator for.                   6[code]void Restart(bool tri = true, bool vert = true)    This will reset the iterator so that it points to the first element again.
<br></br>
<b>Parameters</b><BR>
<i>bool tri</i>: <br>
Pass true if you want to iterate triangles.
<br></br>
<i>bool vert</i>: <br>
Pass true if you want to iterate vertices.                   [code]bool SetNext(bool tri)   ;Steps the iterator to get the next triangle or vertex. Used for forward stepping.
<br></br>
<b>Returns</b><br>
true if the iterator has been incremented.
<br></br>
<b>Parameters</b><BR>
<i>bool tri</i>: <br>
Pass true if you want to increment the triangle iterator. Pass false for incrementing the vertex iterator.               
    [code]bool SetPrev(bool tri)   @Steps the iterator to get the previous triangle or vertex. Used for backward stepping.
<br></br>
<b>Returns</b><br>
true if the iterator has been decremented.
<br></br>
<b>Parameters</b><BR>
<i>bool tri</i>: <br>
Pass true if you want to decrement the triangle iterator. Pass false for incrementing the vertex iterator.                   )[code]void Offset(bool tri, long offset)   sOffsets the iterator to a user defined position. 
<br>You need to make sure yourself the resulting iterator index does not exceed the
particle array bounds!
<br></br>
<b>Parameters</b><BR>
<i>bool tri</i>: <br>
Pass true if you want to offset the triangle iterator. Pass false to offset the vertex iterator.

<br></br>
<i>const long offset</i>: <br>
the iterator offset.                   -[code]bool OffsetSafe(bool tri, long offset)   Offsets the iterator to a user defined position. 
<br>Will automatically make sure the resulting iterator does not exceed the array bounds.
<br></br>
<b>Returns</b><br>
true if the resulting iterator is valid.
<br></br>
<b>Parameters</b><BR>
<i>bool tri</i>: <br>
Pass true if you want to offset the triangle iterator. Pass false to offset the vertex iterator.

<br></br>
<i>const long offset</i>: <br>
the iterator offset.                   #[code]bool IsValid(bool tri) const    <b>Returns</b><br>
true if the current iterator is valid.
<br></br>
<b>Parameters</b><BR>
<i>bool tri</i>: <br>
Pass true if you want to check the triangle iterator for validity. Otherwise it will check the vertex iterator.                   )[code]static FXMeshIterator* Alloc(void)    Allocates the iterator. You can use AutoAlloc for a scope based allocation.
<br></br>
<b>Returns</b><br>
the mesh iterator. The user owns the pointed object.                  +[code]static void Free(FXMeshIterator*& p)    Frees a previously allocated Mesh Iterator..
<br></br>
<b>Parameters</b><BR>
<i>FXMeshIterator*&</i>: <br>
Pass the Mesh iterator to free.                                                             	      
   	      
         
         
                        